package timeDemo.beeboxesRule;

/**
 * @author Ajie
 * @date 2022/11/14
 * @function
 */
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
public class Range<T> {
    private T start;
    private T end;

    public Range() {
    }

    public T getStart() {
        return this.start;
    }

    public T getEnd() {
        return this.end;
    }

    public void setStart(T start) {
        this.start = start;
    }

    public void setEnd(T end) {
        this.end = end;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof Range)) {
            return false;
        } else {
            Range<?> other = (Range)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$start = this.getStart();
                Object other$start = other.getStart();
                if (this$start == null) {
                    if (other$start != null) {
                        return false;
                    }
                } else if (!this$start.equals(other$start)) {
                    return false;
                }

                Object this$end = this.getEnd();
                Object other$end = other.getEnd();
                if (this$end == null) {
                    if (other$end != null) {
                        return false;
                    }
                } else if (!this$end.equals(other$end)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof Range;
    }

    public int hashCode() {
        int result = 1;
        Object $start = this.getStart();
        result = result * 59 + ($start == null ? 43 : $start.hashCode());
        Object $end = this.getEnd();
        result = result * 59 + ($end == null ? 43 : $end.hashCode());
        return result;
    }

    public String toString() {
        return "Range(start=" + this.getStart() + ", end=" + this.getEnd() + ")";
    }

    public class Time {
        private int hour;
        private int minute;
        private int second;

        public Time() {
        }

        public int getHour() {
            return this.hour;
        }

        public int getMinute() {
            return this.minute;
        }

        public int getSecond() {
            return this.second;
        }

        public void setHour(int hour) {
            this.hour = hour;
        }

        public void setMinute(int minute) {
            this.minute = minute;
        }

        public void setSecond(int second) {
            this.second = second;
        }

        public boolean equals(Object o) {
            if (o == this) {
                return true;
            } else if (!(o instanceof Range.Time)) {
                return false;
            } else {
                Range.Time other = (Range.Time)o;
                if (!other.canEqual(this)) {
                    return false;
                } else if (this.getHour() != other.getHour()) {
                    return false;
                } else if (this.getMinute() != other.getMinute()) {
                    return false;
                } else {
                    return this.getSecond() == other.getSecond();
                }
            }
        }

        protected boolean canEqual(Object other) {
            return other instanceof Range.Time;
        }

        public int hashCode() {
            int resultx = 1;
            int result = resultx * 59 + this.getHour();
            result = result * 59 + this.getMinute();
            result = result * 59 + this.getSecond();
            return result;
        }

        public String toString() {
            return "Range.Time(hour=" + this.getHour() + ", minute=" + this.getMinute() + ", second=" + this.getSecond() + ")";
        }
    }

    public class Day {
        private int year;
        private int mm;
        private int day;

        public Day() {
        }

        public int getYear() {
            return this.year;
        }

        public int getMm() {
            return this.mm;
        }

        public int getDay() {
            return this.day;
        }

        public void setYear(int year) {
            this.year = year;
        }

        public void setMm(int mm) {
            this.mm = mm;
        }

        public void setDay(int day) {
            this.day = day;
        }

        public boolean equals(Object o) {
            if (o == this) {
                return true;
            } else if (!(o instanceof Range.Day)) {
                return false;
            } else {
                Range.Day other = (Range.Day)o;
                if (!other.canEqual(this)) {
                    return false;
                } else if (this.getYear() != other.getYear()) {
                    return false;
                } else if (this.getMm() != other.getMm()) {
                    return false;
                } else {
                    return this.getDay() == other.getDay();
                }
            }
        }

        protected boolean canEqual(Object other) {
            return other instanceof Range.Day;
        }

        public int hashCode() {
            int resultx = 1;
            int result = resultx * 59 + this.getYear();
            result = result * 59 + this.getMm();
            result = result * 59 + this.getDay();
            return result;
        }

        public String toString() {
            return "Range.Day(year=" + this.getYear() + ", mm=" + this.getMm() + ", day=" + this.getDay() + ")";
        }
    }
}
